March 9, 2022

Quick recap of last lecture

  1. Survival and Fecundity vary with age / class / stage
  2. Life history tables organize that variability:
    • age distribution \(S(x)\)
    • survival schedule \(l(x)\)
    • birth schedule \(b(x)\)
  3. With those schedules we can compute:
    • Growth rate \(r\)
    • Generation time \(G\)
    • Stable age distribution \(N^*\)
    • Reproductive value \(v_x\) (But the calculations are fussy!)
  4. Different schedules point to different life history strategies

Cohort (Horizontal) Life Table

Follow a cohort through time

Minus:

  • Can take a really long time!

Time-Specific (Vertical) Life Table

Take a snapshot of the age distribution and build survival schedule

Strong assumptions:

  • \(r = 0\) or \(\lambda = 1\)
  • processes (birth and survival schedules) are stationary\(^*\)

* - constant parameters (schedules) over time.

Do these assumptions hold?

US population pyramid - 2020

Life history strategies

\(r\)-selected, vs. \(K\)-selected species

The Oysters and the Walrus

r-selected species

  • lots of offspring
  • little or no parental investment
  • low survivorship
  • unstable environments
  • small
  • early maturity
  • semelparous
  • short life-expectancy
  • Type III survivorship

K-selected species

  • few offspring
  • lots of parental investment
  • high survivorship
  • stable environments
  • large
  • late maturity
  • iteroparous
  • long life-expectancy
  • Type I survivorship schedule

Nice theory you’ve got there, but …

  • What about trees? They’re big, they’re long-lived (very K), but they produce and disperse a heckload of seeds (very, very r).
  • What about iteroparous species (K) that are hedging their bets against high inter-annual variation in environmental conditions (very r)?
  • What about the theory failing to predict experiments - e.g. with Drosophila exposed to

The distinguishing feature of the r- and K-selection paradigm was the focus on density-dependent selection. This paradigm was challenged as it became clear that … age-specific mortality provide[s] a more mechanistic link between an environment and an optimal life history … This new [age-specific mortality-based] life-history paradigm has matured into one that uses age-structured models as a framework to incorporate many of the themes important to the r–K paradigm. - Reznick et al. (2002) Ecology

Semelparity vs. Iteroparity

Cole (1954) asks:

Why should there ever be iteroparity? Having 101 offspring today is way better than 1 offspring for 100 years, because you might die along the way. So all plants should be annual!

Charnov and Schaffer (1973) say growth rates are:

\[\large \lambda_s = B_S;\,\,\,\, \lambda_I = B_I + {s_a \over s_j}\]

  • Total offspring / ind: \(B_S\) - semelparous; \(B_I\) - iteroparous
  • Survival probability: \(s_a\) - adult; \(s_j\) - juvenile

If adult survival is higher than juvenile survival, an iteroparous organism can have a realtively low birth rate to match \(\lambda_S\).

If juvenile survival is higher (or equal) to adult survival, a semelparous organism only needs to produce 1 extra offspring to match \(\lambda_I\).

How is this related to survivorship curves?

Tasmanian devil (Sarcophilus harrisii)

  • Only marsupial carnivore
  • Lives in Tasmania
  • Dying of facial tumor disease.
    • an infectious cancer!
    • kills nearly all adults > 3 years

  • Previously: Longer-lived, and iteroparous, with later birth (over 1 year old)
  • Now: Semelparous, one-shot, younger mothers

See: Jones et al. (2013)

Semelparous vs. Iteroparous Salmonids

Much bigger eggs (189 > 86 mg).

Also nest building and guarding behavior, before dying,

i.e. greater investment in Juvenile Survival over Adult Survival.

The iteros just keep staying alive and trying to

breed again and again.

Matrix population modelling

Total populations vs. structured populations

Scalar

\[\huge N_t\]

Vector

\[\large \vec{N}_t = \begin{cases}n_{1,t} \\ n_{2,t} \\ n_{3,t} \\ \vdots \\ n_{k,t}\end{cases}\]

Exponential Growth - Structured Population Growth

Exponential Growth

\[\huge N_{t+1} = \lambda N_t\]

\(\lambda\) is a scalar population growth multiplier

Structured Population Growth

\[\huge \vec{N}_{t+1} = \textbf M \vec{N_t}\]

\(M\) is a Matrix population structure growth multiplier

Population transition (aka Leslie) matrix

  • A matrix is a tool for transforming vectors.
  • A population matrix transforms a structured population vector by
    1. adding newborns,
    2. killing off older classes,
    3. scootching everyone up the stage ladder.

\[\begin{bmatrix} n_0 \\ n_1 \\ \vdots \\ n_{\omega - 1} \\ \end{bmatrix}_{t+1} = \begin{bmatrix} f_0 & f_1 & f_2 & \ldots & f_{\omega - 2} & f_{\omega - 1} \\ s_0 & 0 & 0 & \ldots & 0 & 0\\ 0 & s_1 & 0 & \ldots & 0 & 0\\ 0 & 0 & s_2 & \ldots & 0 & 0\\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots\\ 0 & 0 & 0 & \ldots & s_{\omega - 2} & 0 \end{bmatrix} \begin{bmatrix} n_0 \\ n_1 \\ \vdots\\ n_{\omega - 1} \end{bmatrix}_{t}\]

  • The matrix is square
  • The matrix rows and columns represent age classes
  • The top row is the number of births coming in from older age classes
  • The lower rows are the number of survivors into the next age class

Remember Monocerus academicus

. Larva Sophomore Emeritus
Monoceros academicus
Survival 0.5 1 0
Fecundity 0 1.5 0.5

Here’s the matrix:

\[ \large M = \begin{bmatrix}0&1.5&0.5 \\0.5&0&0 \\0&1&0 \\\end{bmatrix} \]

Leslie matrix as diagram

The population matrix maps to a diagram! These can be really helpful:

Population transition matrix …

aka Leslie matrix

Here’s the matrix:

\[ M = \begin{bmatrix}0&1.5&0.5 \\0.5&0&0 \\0&1&0 \\\end{bmatrix} \]

It maps to a diagram! These can be really helpful:

Ok, but how does it work?

Matrix Multiplication looks scary!

\[\begin{align*} M V^{T}= \left[ \begin{array}{cccc} a_{11} & a_{12} & \ldots & a_{1n}\\ a_{21} & a_{22} & \ldots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ a_{n1} & a_{n2} & \ldots & a_{nn} \end{array} \right] \left[ \begin{array}{c} x_1\\ x_2\\ \vdots\\ x_n \end{array} \right] = \left[ \begin{array}{c} a_{11}x_1+a_{12}x_2 + \cdots + a_{1n} x_n\\ a_{21}x_1+a_{22}x_2 + \cdots + a_{2n} x_n\\ \vdots\\ a_{n1}x_1+a_{n2}x_2 + \cdots + a_{nn} x_n\\ \end{array} \right]. \end{align*}\]

But it basically just takes each element of your vector (e.g. population at a stage) and tracks how it is affected by all the other stages.

Start with our experiment: 8 larvae

\(N_0 = \left[\begin{array}{c} 8 \\ 0 \\ 0 \\ \end{array}\right]\)

\[N_1 = M N_0^T = \begin{bmatrix}0&1.5&0.5 \\ 0.5&0&0 \\0&1&0 \end{bmatrix} \times \left[\begin{array}{c} 8 \\ 0 \\ 0 \\ \end{array}\right] = \left[\begin{array}{c} 0 + 0 + 0 \\ 4 + 0 + 0 \\ 0 + 0 + 0 \\ \end{array}\right] = \left[\begin{array}{c} 0\\4\\0 \\ \end{array}\right]\] \[N_2 = M N_1^T = \begin{bmatrix}0&1.5&0.5 \\ 0.5&0&0 \\0&1&0 \end{bmatrix} \times \left[\begin{array}{c} 0 \\ 4 \\ 0 \\ \end{array}\right] = \left[\begin{array}{c} 6 \\ 0 \\ 4 \end{array}\right]\] \[N_3 = M N_2^T = M \times \left[\begin{array}{c} 6 \\ 0 \\ 4 \\ \end{array}\right] = \left[\begin{array}{c} 2 \\ 3 \\ 0 \end{array}\right]\]

etc.

Super simple in R!

M <- rbind(c(0,1.5,.5),c(.5,0,0),c(0,1,0))
row.names(M) <- c("larvae", "sophs", "emeriti")
N0 <- c(18,0,0)

One step:

M %*% N0
##         [,1]
## larvae     0
## sophs      9
## emeriti    0

Two steps:

M %*% M %*% N0
##         [,1]
## larvae  13.5
## sophs    0.0
## emeriti  9.0

Three steps:

M %^% 3 %*% N0
##         [,1]
## larvae  4.50
## sophs   6.75
## emeriti 0.00

20 steps:

M %^% 20 %*% N0
##             [,1]
## larvae  8.000124
## sophs   3.999882
## emeriti 4.000225

Plotting the results

\[N_t = M^t \times N_0\]

Structured population ...

Amazing property of (many) matrices …

\[\huge M \times N^* = \lambda N^*\]

For every (population) matrix there is a vector ( age distribution ) for which the matrix transformation ( population growth process ) increases the vector by a fixed proportion \(\lambda\) ( population growth rate).

  • \(N^*\) - is the eigenvector = stable population distribution
  • \(\lambda\) - is the eigenvalue = population growth rate

Some simple examples (to work out by hand)

\[ \large M = \begin{bmatrix}2&0 \\0&2 \\\end{bmatrix} \]

Everything doubles!

  • \(\lambda = 2\)
  • no unique distribution.

\[ \large M = \begin{bmatrix}0&2 \\1&1 \\\end{bmatrix} \]

Eventually everything doubles!

  • \(\lambda = 2\).
  • stable distribution = \(N^* = \{1, 1\}\)

Monocerus academicus



\[ \large M = \begin{bmatrix}0&1.5&0.5 \\0.5&0&0 \\0&1&0 \\\end{bmatrix} \]

eigen(matA)
## eigen() decomposition
## $values
## [1]  1.0 -0.5 -0.5
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.8164966 -0.4082483  0.4082483
## [2,] -0.4082483  0.4082483 -0.4082483
## [3,] -0.4082483 -0.8164966  0.8164966
  • First eigenvalue: \(\lambda = 1\)
  • Ratio of first eigenvector: 50% : 25% : 25%

What if some emeriti decide to go back to school?

\[ \large M = \begin{bmatrix}0&1.5&0.5 \\0.5&0&0.5 \\0&1&0 \\\end{bmatrix} \]

eigen(matB)
## eigen() decomposition
## $values
## [1]  1.2071068 -1.0000000 -0.2071068
## 
## $vectors
##           [,1]       [,2]       [,3]
## [1,] 0.7736915  0.5773503  0.6669930
## [2,] 0.4878914 -0.5773503  0.1511012
## [3,] 0.4041824  0.5773503 -0.7295812



  • First eigenvalue: \(\lambda = 1.21\)
  • Ratio of first eigenvector: 46% : 29% : 24%

How does this look?

Back To School ...

Complex life histories

In short …

… matrix models do it all!

(and do it fast)